﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using itau.im.entidade;
using EnterpriseLibraryWrapper;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.negocio
{
    #region Código Gerado Pela Fábrica de Software (Interface)

    [ServiceContract]
    public interface IProdutoFinanceiroBS
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<FamiliaProdutoFinanceiro> ObterFamiliaProdutoFinanceiroPorCodigoClasseProduto(int codigoClasseProduto);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        ProdutoFinanceiro ObterArvoreProdutoDerivado(int codigoCurva, int codigoGrupoParametros);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarFamiliaProdutoFinanceiro(FamiliaProdutoFinanceiro familiaProduto);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiro> ObterProdutosFinanceiros();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivados();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosInativos();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosPorCodigoGRNome(int codigoProdutoFinanceiroDerivado, string codigoProdutoFinanceiroGR, string nomeProdutoFinanceiroDerivado);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void CriarClasseProdutoFinanceiro(ClasseProdutoFinanceiro classeProdutoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void ExcluirClasseProdutoFinanceiro(int classeProdutoFinanceiroID);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiro> ObterProdutoFinanceiroPorCodigoFamiliaProduto(int codigoFamiliaProdutoID);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        FamiliaProdutoFinanceiro ObterFamiliaProdutoFinanceiro(int codigoFamilia);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ClasseProdutoFinanceiro> ObterClassesProdutoFinanceiro();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void CriarFamiliaProdutoFinanceiro(FamiliaProdutoFinanceiro familia);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void ExcluirFamiliaProdutoFinanceiro(int familiaProdutoID);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        ClasseProdutoFinanceiro ObterClasseProdutoFinanceiro(int codigoClasse);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarClasseProdutoFinanceiro(ClasseProdutoFinanceiro classeProduto);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiroDerivado> ObterProdutosDerivadosPorProduto(int codigoProduto);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<FamiliaProdutoFinanceiro> ObterFamiliasProdutoFinanceiro();

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void CriarProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void ExcluirProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiro> ObterProdutoFinanceiroComProdutosDerivadosAssociados(IList<ProdutoFinanceiro> listaProdutoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarProdutoFinanceiro(ProdutoFinanceiro produtoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        IList<ProdutoFinanceiroAlocacao> ObterProdutoFinanceiroAlocacaoPorProduto(int codigoProdutoFinanceiro);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        ProdutoFinanceiroDerivado CriarProdutoFinanceiroDerivado(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void ExcluirProdutoFinanceiroDerivado(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        void AtualizarProdutoFinanceiroDerivadoExcetoCodigoGR(ProdutoFinanceiroDerivado produtoFinanceiroDerivado);

        [OperationContract]
        [FaultContract(typeof(WCFFaultContract))]
        bool AtualizarProdutoFinanceiroDerivadoCompleto(ProdutoFinanceiroDerivado produtoFinaceiroDerivado, string codigoGRAntigo);

        #endregion
    }
    #endregion
}
#endregion
